Platform Explorer / Nuxeo Platform 2023.10

Contribution org.nuxeo.ecm.platform.search.default.pageproviders--providers

This contribution is part of XML component org.nuxeo.ecm.platform.search.default.pageproviders inside nuxeo-search-core-2023.10.13.jar /OSGI-INF/search-pageprovider-contrib.xml

Extension Point

Extension point providers of component PageProviderService.

Registration Order

32
The registration order represents the order in which this contribution was registered on its target extention point. This will impact the override/merge behaviour when it is implemented on the target service, and is useful for proper customization of existing contributions.
You can influence this order by adding "require" tags in the containing component declaration, to make sure it is resolved after another component (see "Resolution Order" on components).

Contributed Items

  • <coreQueryPageProvider name="default_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:primaryType NOT IN ('Domain', 'SectionRoot', 'TemplateRoot', 'WorkspaceRoot', 'Favorites')
              AND ecm:mixinType != 'HiddenInNavigation'
              AND NOT (ecm:mixinType = 'Collection' AND ecm:name = 'Locally Edited')
              AND ecm:isVersion = 0
              AND ecm:isTrashed = 0
              AND ecm:parentId IS NOT NULL
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="dc:creator">
              <field name="dc_creator" schema="default_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:created">
              <field name="dc_created_min" schema="default_search"/>
              <field name="dc_created_max" schema="default_search"/>
            </predicate>
            <predicate operator="BETWEEN" parameter="dc:modified">
              <field name="dc_modified_min" schema="default_search"/>
              <field name="dc_modified_max" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="dc:nature">
              <field name="dc_nature" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="dc:subjects">
              <field name="dc_subjects" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="dc:coverage">
              <field name="dc_coverage" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="ecm:path">
              <field name="ecm_path" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="ecm:tag">
              <field name="ecm_tags" schema="default_search"/>
            </predicate>
            <predicate operator="IN" parameter="collectionMember:collectionIds">
              <field name="ecm_collections" schema="default_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_nature_agg" parameter="dc:nature" type="terms">
              <field name="dc_nature_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_subjects_agg" parameter="dc:subjects" type="terms">
              <field name="dc_subjects_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_coverage_agg" parameter="dc:coverage" type="terms">
              <field name="dc_coverage_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
              <field name="dc_creator_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="common_size_agg" parameter="file:content.length" type="range">
              <field name="common_size_agg" schema="default_search"/>
              <ranges>
                <range key="tiny" to="102400"/>
                <range from="102401" key="small" to="1048576"/>
                <range from="1048577" key="medium" to="10485760"/>
                <range from="10485761" key="big" to="104857600"/>
                <range from="104857601" key="huge"/>
              </ranges>
            </aggregate>
            <aggregate id="dc_modified_agg" parameter="dc:modified" type="date_range">
              <field name="dc_modified_agg" schema="default_search"/>
              <properties>
                <property name="format">"dd-MM-yyyy"</property>
              </properties>
              <dateRanges>
                <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
                <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
                <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
                <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
                <dateRange key="priorToLastYear" toDate="now-1y"/>
              </dateRanges>
            </aggregate>
          </aggregates>
          <quickFilters>
            <quickFilter name="noFolder">
              <clause>ecm:mixinType != 'Folderish'</clause>
            </quickFilter>
            <quickFilter name="mostRecent">
              <sort ascending="false" column="dc:modified"/>
            </quickFilter>
            <quickFilter name="onlyValidated">
              <clause>ecm:currentLifeCycleState = 'approved'</clause>
              <sort ascending="false" column="dc:modified"/>
            </quickFilter>
          </quickFilters>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
  • <coreQueryPageProvider name="default_trash_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:primaryType NOT IN ('Domain', 'SectionRoot', 'TemplateRoot', 'WorkspaceRoot', 'Favorites')
              AND ecm:mixinType != 'HiddenInNavigation'
              AND NOT (ecm:mixinType = 'Collection' AND ecm:name = 'Locally Edited')
              AND ecm:isCheckedInVersion = 0
              AND ecm:isTrashed = 1
              AND ecm:parentId IS NOT NULL
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="default_search"/>
            </predicate>
            <predicate operator="STARTSWITH" parameter="ecm:path">
              <field name="ecm_path" schema="default_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
              <field name="dc_creator_agg" schema="default_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="common_size_agg" parameter="file:content.length" type="range">
              <field name="common_size_agg" schema="default_search"/>
              <ranges>
                <range key="tiny" to="102400"/>
                <range from="102401" key="small" to="1048576"/>
                <range from="1048577" key="medium" to="10485760"/>
                <range from="10485761" key="big" to="104857600"/>
                <range from="104857601" key="huge"/>
              </ranges>
            </aggregate>
          </aggregates>
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
  • <coreQueryPageProvider name="simple_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:mixinType != 'HiddenInNavigation' AND
              ecm:isVersion = 0
              AND ecm:isTrashed = 0
              AND ecm:parentId IS NOT NULL
              AND SORTED_COLUMN IS NOT NULL
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="ecm:fulltext">
              <field name="ecm_fulltext" schema="default_search"/>
            </predicate>
          </whereClause>
          <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
  • <coreQueryPageProvider name="nxql_search">
          <trackUsage>true</trackUsage>
          <searchDocumentType>DefaultSearch</searchDocumentType>
          <pattern escapeParameters="false" quoteParameters="false">?</pattern>
          <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
          <pageSize>20</pageSize>
        </coreQueryPageProvider>
  • <coreQueryPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="expired_search">
          <trackUsage>true</trackUsage>
          <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
          <searchDocumentType>ExpiredSearch</searchDocumentType>
          <whereClause>
            <fixedPart>
              ecm:isVersion = 0 AND
              ecm:mixinType !=
              'HiddenInNavigation' AND ecm:isTrashed = 0
            </fixedPart>
            <predicate operator="FULLTEXT" parameter="dc:title">
              <field name="title" schema="expired_search"/>
            </predicate>
            <predicate operator="&lt;" parameter="dc:expired">
              <field name="expired_max" schema="expired_search"/>
            </predicate>
            <predicate operator="&gt;" parameter="dc:expired">
              <field name="expired_min" schema="expired_search"/>
            </predicate>
          </whereClause>
          <aggregates>
            <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
              <field name="dc_creator_agg" schema="expired_search"/>
              <properties>
                <property name="size">10</property>
              </properties>
            </aggregate>
            <aggregate id="dc_expired_agg" parameter="dc:expired" type="date_histogram">
              <field name="dc_expired_agg" schema="expired_search"/>
              <properties>
                <property name="interval">month</property>
                <property name="format">MM-yyyy</property>
                <property name="order">key asc</property>
              </properties>
            </aggregate>
          </aggregates>
          <sort ascending="true" column="dc:expired"/>
          <pageSize>20</pageSize>
          <quickFilters>
            <quickFilter name="approved">
              <clause>ecm:currentLifeCycleState = 'approved'</clause>
            </quickFilter>
          </quickFilters>
        </coreQueryPageProvider>

XML Source

<extension point="providers" target="org.nuxeo.ecm.platform.query.api.PageProviderService">

    <coreQueryPageProvider name="default_search">
      <trackUsage>true</trackUsage>
      <searchDocumentType>DefaultSearch</searchDocumentType>
      <whereClause>
        <fixedPart>
          ecm:primaryType NOT IN ('Domain', 'SectionRoot', 'TemplateRoot', 'WorkspaceRoot', 'Favorites')
          AND ecm:mixinType != 'HiddenInNavigation'
          AND NOT (ecm:mixinType = 'Collection' AND ecm:name = 'Locally Edited')
          AND ecm:isVersion = 0
          AND ecm:isTrashed = 0
          AND ecm:parentId IS NOT NULL
          AND SORTED_COLUMN IS NOT NULL
        </fixedPart>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="ecm_fulltext" schema="default_search"/>
        </predicate>
        <predicate operator="IN" parameter="dc:creator">
          <field name="dc_creator" schema="default_search"/>
        </predicate>
        <predicate operator="BETWEEN" parameter="dc:created">
          <field name="dc_created_min" schema="default_search"/>
          <field name="dc_created_max" schema="default_search"/>
        </predicate>
        <predicate operator="BETWEEN" parameter="dc:modified">
          <field name="dc_modified_min" schema="default_search"/>
          <field name="dc_modified_max" schema="default_search"/>
        </predicate>
        <predicate operator="IN" parameter="dc:nature">
          <field name="dc_nature" schema="default_search"/>
        </predicate>
        <predicate operator="STARTSWITH" parameter="dc:subjects">
          <field name="dc_subjects" schema="default_search"/>
        </predicate>
        <predicate operator="STARTSWITH" parameter="dc:coverage">
          <field name="dc_coverage" schema="default_search"/>
        </predicate>
        <predicate operator="STARTSWITH" parameter="ecm:path">
          <field name="ecm_path" schema="default_search"/>
        </predicate>
        <predicate operator="IN" parameter="ecm:tag">
          <field name="ecm_tags" schema="default_search"/>
        </predicate>
        <predicate operator="IN" parameter="collectionMember:collectionIds">
          <field name="ecm_collections" schema="default_search"/>
        </predicate>
      </whereClause>
      <aggregates>
        <aggregate id="dc_nature_agg" parameter="dc:nature" type="terms">
          <field name="dc_nature_agg" schema="default_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="dc_subjects_agg" parameter="dc:subjects" type="terms">
          <field name="dc_subjects_agg" schema="default_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="dc_coverage_agg" parameter="dc:coverage" type="terms">
          <field name="dc_coverage_agg" schema="default_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
          <field name="dc_creator_agg" schema="default_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="common_size_agg" parameter="file:content.length" type="range">
          <field name="common_size_agg" schema="default_search"/>
          <ranges>
            <range key="tiny" to="102400"/>
            <range from="102401" key="small" to="1048576"/>
            <range from="1048577" key="medium" to="10485760"/>
            <range from="10485761" key="big" to="104857600"/>
            <range from="104857601" key="huge"/>
          </ranges>
        </aggregate>
        <aggregate id="dc_modified_agg" parameter="dc:modified" type="date_range">
          <field name="dc_modified_agg" schema="default_search"/>
          <properties>
            <property name="format">"dd-MM-yyyy"</property>
          </properties>
          <dateRanges>
            <dateRange fromDate="now-24H" key="last24h" toDate="now"/>
            <dateRange fromDate="now-7d" key="lastWeek" toDate="now-24H"/>
            <dateRange fromDate="now-1M" key="lastMonth" toDate="now-7d"/>
            <dateRange fromDate="now-1y" key="lastYear" toDate="now-1M"/>
            <dateRange key="priorToLastYear" toDate="now-1y"/>
          </dateRanges>
        </aggregate>
      </aggregates>
      <quickFilters>
        <quickFilter name="noFolder">
          <clause>ecm:mixinType != 'Folderish'</clause>
        </quickFilter>
        <quickFilter name="mostRecent">
          <sort ascending="false" column="dc:modified"/>
        </quickFilter>
        <quickFilter name="onlyValidated">
          <clause>ecm:currentLifeCycleState = 'approved'</clause>
          <sort ascending="false" column="dc:modified"/>
        </quickFilter>
      </quickFilters>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="default_trash_search">
      <trackUsage>true</trackUsage>
      <searchDocumentType>DefaultSearch</searchDocumentType>
      <whereClause>
        <fixedPart>
          ecm:primaryType NOT IN ('Domain', 'SectionRoot', 'TemplateRoot', 'WorkspaceRoot', 'Favorites')
          AND ecm:mixinType != 'HiddenInNavigation'
          AND NOT (ecm:mixinType = 'Collection' AND ecm:name = 'Locally Edited')
          AND ecm:isCheckedInVersion = 0
          AND ecm:isTrashed = 1
          AND ecm:parentId IS NOT NULL
          AND SORTED_COLUMN IS NOT NULL
        </fixedPart>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="ecm_fulltext" schema="default_search"/>
        </predicate>
        <predicate operator="STARTSWITH" parameter="ecm:path">
          <field name="ecm_path" schema="default_search"/>
        </predicate>
      </whereClause>
      <aggregates>
        <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
          <field name="dc_creator_agg" schema="default_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="common_size_agg" parameter="file:content.length" type="range">
          <field name="common_size_agg" schema="default_search"/>
          <ranges>
            <range key="tiny" to="102400"/>
            <range from="102401" key="small" to="1048576"/>
            <range from="1048577" key="medium" to="10485760"/>
            <range from="10485761" key="big" to="104857600"/>
            <range from="104857601" key="huge"/>
          </ranges>
        </aggregate>
      </aggregates>
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="simple_search">
      <trackUsage>true</trackUsage>
      <searchDocumentType>DefaultSearch</searchDocumentType>
      <whereClause>
        <fixedPart>
          ecm:mixinType != 'HiddenInNavigation' AND
          ecm:isVersion = 0
          AND ecm:isTrashed = 0
          AND ecm:parentId IS NOT NULL
          AND SORTED_COLUMN IS NOT NULL
        </fixedPart>
        <predicate operator="FULLTEXT" parameter="ecm:fulltext">
          <field name="ecm_fulltext" schema="default_search"/>
        </predicate>
      </whereClause>
      <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider name="nxql_search">
      <trackUsage>true</trackUsage>
      <searchDocumentType>DefaultSearch</searchDocumentType>
      <pattern escapeParameters="false" quoteParameters="false">?</pattern>
      <!-- sort column="dc:title" ascending="true" / sort by fulltext relevance -->
      <pageSize>20</pageSize>
    </coreQueryPageProvider>

    <coreQueryPageProvider class="org.nuxeo.elasticsearch.provider.ElasticSearchNxqlPageProvider" name="expired_search">
      <trackUsage>true</trackUsage>
      <property name="maxResults">DEFAULT_NAVIGATION_RESULTS</property>
      <searchDocumentType>ExpiredSearch</searchDocumentType>
      <whereClause>
        <fixedPart>
          ecm:isVersion = 0 AND
          ecm:mixinType !=
          'HiddenInNavigation' AND ecm:isTrashed = 0
        </fixedPart>
        <predicate operator="FULLTEXT" parameter="dc:title">
          <field name="title" schema="expired_search"/>
        </predicate>
        <predicate operator="&lt;" parameter="dc:expired">
          <field name="expired_max" schema="expired_search"/>
        </predicate>
        <predicate operator=">" parameter="dc:expired">
          <field name="expired_min" schema="expired_search"/>
        </predicate>
      </whereClause>
      <aggregates>
        <aggregate id="dc_creator_agg" parameter="dc:creator" type="terms">
          <field name="dc_creator_agg" schema="expired_search"/>
          <properties>
            <property name="size">10</property>
          </properties>
        </aggregate>
        <aggregate id="dc_expired_agg" parameter="dc:expired" type="date_histogram">
          <field name="dc_expired_agg" schema="expired_search"/>
          <properties>
            <property name="interval">month</property>
            <property name="format">MM-yyyy</property>
            <property name="order">key asc</property>
          </properties>
        </aggregate>
      </aggregates>
      <sort ascending="true" column="dc:expired"/>
      <pageSize>20</pageSize>
      <quickFilters>
        <quickFilter name="approved">
          <clause>ecm:currentLifeCycleState = 'approved'</clause>
        </quickFilter>
      </quickFilters>
    </coreQueryPageProvider>

  </extension>